package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.VideoMatrixInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护视频矩阵信息的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
@SuppressWarnings("rawtypes")
public interface DubboVideoMatrixInfoService {
	/**
	 * 返回所有视频矩阵信息
	 * @return ResultPojo 所有视频矩阵信息
	 */
	public ResultPojo getVideoMatrixInfo();
	
	/**
	 * 分页返回所有视频矩阵信息
	 * @param page 分页对象
	 * @return ResultPojo 包含视频矩阵信息的分页对象
	 */
	public ResultPojo getPageVideoMatrixInfo(Page page);
	/**
	 * 返回所有视频矩阵信息
	 * @param orderSeq 
	 * @param manageDept 
	 * @param manageId 
	 * @param matrixType 
	 * @param letterAbbr 
	 * @param deviceStatusCode 
	 * @param matrixName 
	 * @param matrixId 
	 * @param orderSeq 
	 * @param manageDept 
	 * @param manageId 
	 * @param matrixType 
	 * @param letterAbbr 
	 * @param deviceStatusCode 
	 * @param matrixName 
	 * @param matrixId 
	 * @return ResultPojo 所有视频矩阵信息
	 */
	public ResultPojo getVideoMatrixInfo(String matrixId, String matrixName, String deviceStatusCode, String letterAbbr, String matrixType, String manageId, String manageDept, String orderSeq);
	
	/**
	 * 分页返回所有视频矩阵信息
	 * @param orderSeq 
	 * @param manageDeptId 
	 * @param manageId 
	 * @param matrixType 
	 * @param letterAbbr 
	 * @param deviceStatusCode 
	 * @param matrixName 
	 * @param matrixId 
	 * @param page 分页对象
	 * @return ResultPojo 包含视频矩阵信息的分页对象
	 */
	public ResultPojo getPageVideoMatrixInfo(String matrixId, String matrixName, String deviceStatusCode, String letterAbbr, String matrixType, String manageId, String manageDeptId, String orderSeq, Page page);
	
	/**
	 * 返回指定编码的视频矩阵信息
	 * @param maxtrixId 视频矩阵编码
	 * @return ResultPojo 视频矩阵信息
	 */
	public ResultPojo getVideoMatrixInfoById(String maxtrixId);
	
	/**
	 * 按名称匹配并返回视频矩阵信息
	 * @param matrixName 视频矩阵名称
	 * @return ResultPojo 视频矩阵信息
	 */
	public ResultPojo getVideoMatrixInfoByname(String matrixName);
	
	/**
	 * 返回与前缀相匹配的视频矩阵最大编码值，用于手工生成新的编码
	 * @param prefixMatrixId 视频矩阵编码前缀
	 * @return String 与前缀相匹配的视频矩阵最大编码值
	 */
	public String getMaxMatrixId(String prefixMatrixId);
	
	/**
	 * 添加一条视频矩阵信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param videoMatrixInfoDto 视频矩阵信息
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addVideoMatrixInfo(String token, VideoMatrixInfoDto videoMatrixInfoDto);
	
	/**
	 * 修改一条视频矩阵信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param videoMatrixInfoDto 视频矩阵信息
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editVideoMatrixInfo(String token, VideoMatrixInfoDto videoMatrixInfoDto);
	
	/**
	 * 删除指定编码的视频矩阵信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param matrixId 视频矩阵编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeVideoMatrixInfo(String token, String matrixId);


}